《GraphGAN: Graph Representation Learning with Generative Adversarial Nets》
graph representation learning
(也被称作 network embedding
)旨在将图(或者network
)中的每个顶点表达为一个低维向量。graph representation learning
可以促进对顶点和边的网络分析和预测任务。学到的 embedding
能够使广泛的实际application
受益,例如链接预测、节点分类、推荐、可视化、知识图谱 representation
、聚类、text embedding
、社交网络分析。最近,研究人员研究了将 representation learning
方法应用于各种类型的图,例如加权图(weighted graph
)、有向图(directed graph
) 、有符号图(signed graph
)、异质图( heterogeneous graph
)、属性图(attributed graph
)。此外,先前的一些工作也试图在学习过程中保留特定的属性,例如全局结构(global structure
) 、社区结构( community structure
)、分组信息 (group information
)、非对称传递性( asymmetric transitivity
)。
总的来讲,大多数现有的 graph representation learning
方法可以分为两类。
第一类是生成式 graph representation learning
模型。类似于经典的生成式模型(generative model
) (例如高斯混合模型Gaussian Mixture Model: GMM
或潜在狄利克雷分配 Latent Dirichlet Allocation: LDA
),生成式 graph representation learning
模型假设:对于每个顶点 underlying true connectivity distribution
) connectivity preference
)(或者相关性分布relevance distribution
)。因此,图中的边可以被视为由这些条件分布生成的观察样本( observed sample
),并且这些生成模型通过最大化图中边的可能性来学习顶点 embedding
。例如,DeepWalk
使用随机游走对每个顶点的上下文顶点进行采样,并尝试最大化观察给定顶点的上下文顶点的对数似然。node2vec
通过提出有偏随机游走过程进一步扩展了这个想法,这个有偏随机游走过程在为给定顶点生成上下文时提供了更大的灵活性。
第二类是判别式 graph representation learning
模型。与生成模型不同的是,判别式 graph representation learning
模型不会将边视为从底层条件分布生成的,而是旨在学习一个分类器来直接预测边的存在。通常,判别式模型(discriminative model
)将两个顶点 SDNE
使用顶点的稀疏邻接向量( sparse adjacency vector
)作为每个顶点的原始特征,并应用自编码器在边存在(edge existence
) 的监督下提取顶点的低维稠密特征。PPNE
直接通过对正样本(连接的顶点 pair
对)和负样本(未连接的顶点 pair
对)的监督学习来学习顶点 embedding
,同时在学习过程中也保留了顶点的固有属性。
尽管生成模型和判别模型通常是 graph representation learning
方法的两个不相交的类别,但是它们可以被视为同一枚硬币的两个方面。事实上,LINE
已经对于隐式地结合这两个目标(一阶邻近性和二阶邻近性)进行了初步的尝试。最近,生成对抗网络( Generative Adversarial Net: GAN
)受到了极大的关注。通过设计一个博弈论( game-theoretical
) 的 minimax
游戏来结合生成模型和判别模型,GAN
及其变体在各种应用中取得了成功,例如图像生成(image generation
) 、序列生成(sequence generation
)、对话生成(dialogue generation
) 、信息检索(information retrieval
) 、领域适应( domain adaption
)。
受 GAN
的启发,论文 《GraphGAN: Graph Representation Learning with Generative Adversarial Nets》
提出了一种新颖的框架 GraphGAN
,它统一了 graph representation learning
的生成式思维和判别式思维。具体而言,框架的目标是在 GraphGAN
的学习过程中训练两个模型:
生成器 generator
判别器 discriminator
well-connected
的顶点 pair
对和 ill-connected
的顶点 pair
对,并计算顶点
在提出的 GraphGAN
中,生成器 minimax
游戏中充当两个参与者:生成器试图在判别器提供的指导下产生最难以区分的 “假” 顶点,而判别器试图在 ground truth
和 “假” 顶点之间划清界限从而避免被生成器愚弄。这场博弈中的竞争促使它们双方都提高自己的能力,直到生成器(代表模型学到的条件分布)与真实的连通性分布( true connectivity distribution
)无法区分。
在 GraphGAN
框架下,论文研究了生成器和判别器的选择。不幸的是,作者发现传统的softmax
函数(及其变体)不适用于生成器,有两个原因:
对于给定的顶点,softmax
会同等对待图中的所有其它顶点,缺乏对图结构和邻近性信息 (proximity information
) 的考虑。
softmax
的计算涉及图中的所有顶点,耗时且计算效率低。
为了克服这些缺陷,论文在 GraphGAN
中提出了一种新的、针对生成器的 softmax
实现,称作 Graph Softmax
。Graph Softmax
为图中的连通性分布提供了新的定义。论文证明了 Graph Softmax
满足规范化(normalization
)、图结构感知(graph structure awareness
)、以及计算效率( computational efficiency
)的理想特性。据此,论文为生成器提出了一种基于随机游走的在线生成策略( online generating strategy
),该策略与 Graph Softmax
的定义一致,可以大大降低计算复杂度。
论文在五个真实世界的图结构数据集上将 GraphGAN
应用于三个真实世界场景,即链接预测、节点分类、推荐。实验结果表明:与 graph representation learning
领域的 SOTA
的 baseline
相比,GraphGAN
取得了可观的收益。具体而言,在准确率指标上,GraphGAN
在链接预测中的性能优于 baseline
0.59% ~ 11.13%
,在节点分类中的性能优于 baseline
0.95% ~ 21.71%
。此外,GraphGAN
在推荐任务上将 Precision@20
至少提高了 38.56%
、Recall@20
至少提高了 52.33%
。作者将 GraphGAN
的优越性归因于其统一的对抗性学习框架以及邻近性感知( proximity-aware
)的 Graph Softmax
设计。其中,Graph Softmax
可以自然地从图中捕获结构信息。
这里我们首先介绍 GraphGAN
的框架,并讨论了生成器和判别器的实现和优化细节。然后,我们展示了作为生成器实现的 Graph Softmax
,并证明了它优于传统 softmax
函数的性能。
令图
我们定义顶点 underlying true connectivity distribution
)为条件概率 connectivity preference
)。从这个角度来看,observed sample
) 。
给定图
生成器 generator
判别器 discriminator
pair
对 connectivity
)。它输出一个标量,代表顶点
生成器
生成器
判别器
形式化地,生成器 value function
) minimax
游戏:
其中生成器和判别器的参数可以通过交替最大化和最小化值函数
第一项要求判别器
尽可能给 ”真邻居” 以较高的预估概率,第二项要求判别器 尽可能给 “假邻居” 以较低的预估概率。
GraphGAN
整体框架如下图所示。每次迭代过程中,我们使用来自
判别器Discriminator
:给定从底层真实连通性分布而来的正样本,以及从生成器而来的负样本,判别器 label
分配给正样本和负样本的概率的对数。如果判别器
在 GraphGAN
中,我们简单地定义判别器 embedding
内积的 sigmoid
函数。理论上 SDNE
等任何判别式模型都可以用作判别器
其中 representation
向量,
注意到这里仅包含
即,没必要更新全量顶点的
embedding
。
生成器Generator
:和判别器相比,生成器 approximated connectivity distribution
),从而增加其生成的 “假” 顶点在判别器
由于生成器采样的顶点 《Gradient estimation using stochastic computation graphs》
和 《Irgan: A minimax game for unifying generative and discriminative information retrieval models》
的做法,我们建议通过策略梯度(policy gradient
)计算
其中
考虑到
则有:
梯度
当
当
这表明:当我们对
生成器 softmax
函数来实现:
其中 representation
向量,
为了在每轮迭代中更新 approximated connectivity distribution
),然后根据该分布随机采样一组样本
注意,采样“假”顶点时采用更新前的生成器,然后通过随机梯度下降得到更新后的生成器。
在生成器中应用 softmax
有两个限制:
计算 softmax
函数时涉及到图中的所有顶点,这意味着对于每个生成的样本 Graph
。
图结构信息编码了顶点之间丰富的邻近性信息,但是 softmax
函数完全忽略了来自图的结构信息,因为它不加区分地对待所有顶点。
最近 hierarchical softmax
和负采样技术是 softmax
的流行替代方案。尽管这些方法可以在一定程度上减少计算量,但是它们也没有考虑图的结构信息,因此应用于graph representation learning
时也无法获得令人满意的性能。
为解决softmax
的问题,在 GraphGAN
中我们提出了一个新颖的 Graph Softmax
,其关键思想是:重新对生成器 softmax
方法:
归一化(normalized
) :生成器
图结构感知(graph structure aware
) :生成器 shortest distance
) 的增加而下降。
计算高效( computationally efficient
):和计算全量 softmax
不同,计算
Graph Softmax
:为计算 Breadth First Search: BFS
),这得到一棵以 BFS
树
注意:
既依赖于顶点 ,又依赖于顶点 。如果根顶点 不同,则 BFS
树也不同,则 的邻居集合也不同。另外,这里仅包含直接相连的顶点(直系父顶点、直系子顶点)。
对于给定的顶点
这其实是定义在 softmax
函数。
定义的是路径概率:给定树 和顶点 ,下一步选择其父顶点或子顶点的路径概率。这个概率并不是 “假” 顶点的生成概率。
注意到 Graph Softmax
定义为:
其中
可以证明这种定义的 Graph Softmax
满足归一性、结构感知、计算高效等性质。
定理一:Graph Softmax
满足
定理二:在原始图中如果
证明:由于 BFS
得到的,因此路径
定理三:计算 degree
,
证明:计算
在路径 BFS
树的深度。
路径上顶点直接相连的顶点。路径上每个顶点平均有
在线生成策略( online generating strategy
):生成器
这里我们提出一种在线的顶点生成方法,该方法计算效率更高并且与 Graph Softmax
的定义一致。为了生成一个顶点,我们从
因为
Graph Softmax
的定义中包含到 的一条路径,并且还包含 到 的父节点的反向。
下图给出了 “假” 顶点的在线生成过程,以及 Graph Softmax
计算过程。蓝色数字表示概率
在每个随机游走步通过概率
一旦
然后根据
生成器 Graph Softmax
,在线生成方法的计算复杂度为
生成器
输入:
图
BFS
树
顶点的embedding
输出:生成的顶点
算法步骤:
初始化:
根据概率
如果
否则
GraphGAN
算法:
输入:
embedding
维度
生成样本数
判别样本数
输出:
生成器
判别器
算法步骤:
初始化和预训练
对每个顶点 BFS
树
迭代直到 GraphGAN
收敛,迭代步骤为:
根据生成器在线生成算法,生成器
根据
对每个顶点
根据
返回
由于构建每棵BFS
树的算法复杂度为 BFS
树的计算复杂度degree
。
在G-steps
,每一行的算法复杂度都是 D-steps
,第一行的算法复杂度为 GraphGAN
每次迭代的算法复杂度为
因此总的算法复杂度为 BFS
树的部分决定。
读者注:论文将生成器的 embedding
embedding
,而并没有采用判别器的 embedding
embedding
的效果要比判别器 embedding
的效果更好。
理论上也可以尝试拼接生成器的 embedding
和判别器的 embedding
从而得到顶点的最终 embedding
。
我们评估 GraphGAN
在一系列真实数据集上的性能,包括链接预测、节点分类、推荐等三个任务。
数据集:
arXiv-AstroPh
数据集:来自 arXiv
上天文物理领域的论文,包含了作者之间的 co-author
关系。顶点表示作者,边表示co-author
关系。该图包含 18772
个顶点、198110
条边。
arXiv-GrQc
数据集:来自 arXiv
上广义相对论与量子宇宙学领域的论文,包含了作者之间的 co-author
关系。顶点表示作者,边表示co-author
关系。该图包含 5242
个顶点、14496
条边。
BlogCatalog
数据集:来自 BlogCatelog
网站上给出的博主的社交关系网络。顶点标签表示通过博主提供的元数据推断出来的博主兴趣。该图包含 10312
个顶点、333982
条边、39
个不同的标签。
Wikipedia
数据集:来自维基百科,包含了英文维基百科 dump
文件的前 co-occurrence
网络。顶点的标签表示推断出来的单词词性Part-of-Speech:POS
。该图包含 4777
个顶点、184812
条边、40
个不同的标签。
MovieLens-1M
数据集:是一个二部图,来自 MovieLens
网站上的大约 100
万个评分(边),包含 6040
位用户和 3706
部电影。
baseline
方法:
DeepWalk
:通过随机游走和 skip-gram
来学习顶点 embedding
。
LINE
:保留了顶点的一阶邻近性和二阶邻近性。
Node2Vec
:是 DeepWalk
的一个变种,通过一个biased
有偏的随机游走来学习顶点 embedding
。
Struct2Vec
:捕获了图中顶点的结构信息。
参数配置:
所有方法的embedding
的维度
所有baseline
模型的其它超参数都是默认值。
在所有任务上,GraphGAN
的学习率都是 0.001
, G-steps
和 D-steps
30
次。这些超参数都是通过交叉验证来选取的。
最终学到的顶点 embedding
为生成器的
我们首先实验了图中连通性分布的模式,即:边的存在概率如何随着图中最短路径的变化而变化。
我们首先分别从 arXiv-AstroPh
和 arXiv-GrQc
数据集中随机抽取 100
万个顶点 pair
对。对于每个选定的顶点 pair
对,我们删除它们之间的连接(如果存在),然后计算它们之间的最短距离。我们计算所有可能的最短距离上边存在的可能性,如下图所示。
显然,顶点 pair
对之间存在边的概率随着它们最短路径的增加而急剧下降。
从对数概率曲线几乎为线性可以看出,顶点 pair
对之间的边存在概率和它们最短距离的倒数成指数关系。这进一步证明了 Graph Softmax
捕获了真实世界 Graph
的本质。
这进一步证明了 Graph Softmax
捕获了真实世界 Graph
的结构信息。
在链接预测任务中,我们的目标是预测两个给定顶点之间是否存在边。因此该任务显式了不同的 graph representation learning
方法预测链接的能力。
我们随机将原始图中 10%
的边作为测试集,并在图上删掉这些边,然后用所有的顶点和剩下的边来训练模型。训练后,我们根据所有顶点训练得到的 embedding
向量,然后用逻辑回归来预测给定顶点 pair
对之间存在边的概率。测试集包含原始图中删掉的 10%
条边作为正样本,并随机选择未连接的相等数量的pair
对作为负样本。
我们使用 arXiv-AstroPh
和 arXiv-GrQc
作为数据集,并在下表报告准确率和 Macro-F1
的结果。结论:
LINE
和 struct2vec
的性能在链接预测方面相对较差,因为它们不能完全捕获图中链接存在的模式。
DeepWalk
和 node2vec
的性能优于 LINE
和 struct2vec
,这可能优于 DeepWalk
和 node2vec
都利用了基于随机游走的 skip-gram
模型,该模型在提取顶点之间邻近性方面表现更好。
GraphGAN
优于所有 baseline
方法。具体而言,GraphGAN
将 arXiv-AstroPh
的预测准确率提升 1.18% ~ 4.27%
、将 arXiv-GrQc
的预测准确率提升 0.59% ~ 11.13%
。我们认为,与 baseline
方法的单个模型训练相比,对抗训练为 GraphGAN
提供了更高的学习灵活性。
为直观了解 GraphGAN
学习的稳定性,我们进一步给出了生成器和判别器在 arXiv-GrQc
上的学习曲线learning curve
。可以看到:GraphGAN
中的 minimax game
达到了平衡,其中生成器在收敛后表现出色,而判别器的性能首先增强然后逐渐降到 0.8
以下。注意,判别器不会降级到随机盲猜的水平,因为在实践中生成器仍然提供很多真正的负样本。
结果表明,与 IRGAN
不同,Graph Softmax
的设计使得 GraphGAN
中的生成器能够更有效地采样顶点和学习顶点 embedding
。
这个实验表明生成器
embedding
要比判别器embedding
效果更好。
在节点分类中,每个顶点被分配一个或者多个标签。在我们观察到一小部分顶点及其标签之后,我们的目标是预测剩余顶点的标签。因此,顶点分类的性能可以揭示不同 graph representation learning
方法下顶点的可分性。我们在 BlogCatalog
和 Wikipedia
数据集上执行顶点分类任务。我们在整个图上训练模型,然后将顶点 embedding
作为逻辑回归分类器的输入。其中训练集、测试集按照 9:1
的比例进行拆分。我们报告了测试集的准确率和 Macro-F1
结果。
可以看到:GraphGAN
性能在这两个数据集上都优于所有基准模型。例如,GraphGAN
在这两个数据集的准确率上分别实现了 1.75% ~ 13.17%
以及 0.95% ~ 21.71%
的增益。这表明:尽管GraphGAN
设计用于建模顶点之间的连通性分布,但是它仍然可以有效的将顶点信息编码到顶点 embedding
中。
我们使用 Movielens-1M
作为推荐数据集,我们的目标是对每个用户向该用户推荐一组尚未观看、但是可能被用户喜欢的电影。
我们首先将所有的4
星和 5
星评级视为边,从而得到一个二部图。然后将原始图的 10%
边随机隐藏作为测试集,并为每个用户构建 BFS
树。注意:和之前的两个任务不同,在之前任务中,对于给定的顶点我们定义了它与所有其它顶点的连通性分布。但是推荐任务中,一个用户的连接概率仅定义在图中的一小部分电影顶点上(用户顶点之间不存在连接、电影顶点之间也不存在连接)。因此我们在用户的 BFS
树中,对于除根顶点之外的所有用户顶点,我们将它们和位于当前 BFS
树中的电影顶点添加直连边来 shortcut
。
在训练并获得用户和电影的embedding
之后,对于每个用户,我们基于user embeding
和电影 embedding
的相似度来挑选 Precision@K
和 Recall@K
指标。可以看到:GraphGAN
始终优于所有基准方法,并在两个指标上均有显著改进。以 Precision@20
为例,GraphGAN
比 DeepWalk, LINE, node2vec, struct2vec
分别高出 38.56%
、58.60%
、124.95%
、156.85%
。因此,我们可以得出结论:GraphGAN
在 ranking-based
任务中保持了更出色的性能。